package it.clariter.web.action;

import java.util.List;

import it.clariter.dao.AreaDAO;
import it.clariter.dao.TipologiaDocumentoDAO;
import it.clariter.dao.VersoDAO;
import it.clariter.model.Area;
import it.clariter.model.TipologiaDocumento;
import it.clariter.model.Verso;
import it.clariter.web.form.AreaTipologiaVersoForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class EseguiCrudTipologiaAreaVersoAction extends DispatchAction {

	
	public ActionForward nuovoVerso(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AreaTipologiaVersoForm l = (AreaTipologiaVersoForm) form;
		Verso verso = new Verso();
		BeanUtils.copyProperties(verso, l);
		
		new VersoDAO().insert(verso);
		verso = (Verso) session.getAttribute("versoPerRicerca");
		List<Verso> listaVerso = new VersoDAO().findByExample(verso);
		session.setAttribute("versi", listaVerso);
		request.setAttribute("messaggio", "Verso aggiunto correttamente");
		
		return mapping.findForward("verso");
		
	}
	
	public ActionForward modificaVerso(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AreaTipologiaVersoForm l = (AreaTipologiaVersoForm) form;
		Verso verso = new Verso();
		BeanUtils.copyProperties(verso, l);
		
		new VersoDAO().update(verso);
		verso = (Verso) session.getAttribute("versoPerRicerca");
		List<Verso> listaVerso = new VersoDAO().findByExample(verso);
		session.setAttribute("versi", listaVerso);
		request.setAttribute("messaggio", "Verso modificato correttamente");
		
		return mapping.findForward("verso");
		
	}
	
	public ActionForward nuovaTipologia(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AreaTipologiaVersoForm l = (AreaTipologiaVersoForm) form;
		TipologiaDocumento tip = new TipologiaDocumento();
		BeanUtils.copyProperties(tip, l);
		
		new TipologiaDocumentoDAO().insert(tip);
		tip = (TipologiaDocumento) session.getAttribute("tipologiaPerRicerca");
		List<TipologiaDocumento> lista = new TipologiaDocumentoDAO().findByExample(tip);
		session.setAttribute("tipologie", lista);
		request.setAttribute("messaggio", "Tipologia aggiunta correttamente");
		
		return mapping.findForward("tipologia");
		
	}
	
	public ActionForward modificaTipologia(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		AreaTipologiaVersoForm l = (AreaTipologiaVersoForm) form;
		TipologiaDocumento tip = new TipologiaDocumento();
		BeanUtils.copyProperties(tip, l);
		
		new TipologiaDocumentoDAO().update(tip);
		tip = (TipologiaDocumento) session.getAttribute("tipologiaPerRicerca");
		List<TipologiaDocumento> lista = new TipologiaDocumentoDAO().findByExample(tip);
		session.setAttribute("tipologie", lista);
		request.setAttribute("messaggio", "Tipologia modificata correttamente");
		
		return mapping.findForward("tipologia");
		
	}
	
	public ActionForward nuovaArea(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		HttpSession session = request.getSession();
		AreaTipologiaVersoForm l = (AreaTipologiaVersoForm) form;
		Area a = new Area();
		BeanUtils.copyProperties(a, l);
		
		new AreaDAO().insert(a);
		a = (Area) session.getAttribute("areaPerRicerca");
		List<Area> lista = new AreaDAO().findByExample(a);
		session.setAttribute("aree", lista);
		request.setAttribute("messaggio", "Area aggiunta correttamente");
		
		return mapping.findForward("area");
		
	}
	
	public ActionForward modificaArea(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
		HttpSession session = request.getSession();
		AreaTipologiaVersoForm l = (AreaTipologiaVersoForm) form;
		Area a = new Area();
		BeanUtils.copyProperties(a,l);
		
		new AreaDAO().update(a);
		a = (Area) session.getAttribute("areaPerRicerca");
		List<Area> lista = new AreaDAO().findByExample(a);
		session.setAttribute("aree", lista);
		request.setAttribute("messaggio", "Area modificata correttamente");
		
		return mapping.findForward("area");
		
	}
}
